
const fs = require('fs');
const { Transform } = require('stream');

// 创建可读流
const readableStream = fs.createReadStream('from.txt', { encoding: 'utf8' });

// 创建可写流
const writableStream = fs.createWriteStream('to.txt');

// 创建转换流，将字符转换为大写
const transformStream = new Transform({
    transform(chunk, encoding, callback) {
        // 将数据转换为大写
        const upperChunk = chunk.toString().toUpperCase();
        callback(null, upperChunk);
    }
});

// 使用管道连接流
readableStream
    .pipe(transformStream)
    .pipe(writableStream);

// 处理错误
readableStream.on('error', (err) => {
    console.error('读取文件时出错:', err);
});

transformStream.on('error', (err) => {
    console.error('转换数据时出错:', err);
});

writableStream.on('error', (err) => {
    console.error('写入文件时出错:', err);
});

// 完成时的处理
writableStream.on('finish', () => {
    console.log('文件转换完成！数据已写入 to.txt');
});

console.log('开始处理文件流...');